package com.tbit.uqbike.client.service;

import com.tbit.uqbike.client.pojo.User;
import com.tbit.uqbike.client.pojo.newEntity.AccountDiscount;
import com.tbit.uqbike.client.pojo.newEntity.UserAuthLog;
import com.tbit.uqbike.client.pojo.newEntity.UserDiscount;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Author: chen
 * @Description: 特殊认证
 * @Date: 创建于 10:51 2022/9/16
 */
public interface SpecialAuthService {

    /**
     * 获取特殊认证配置
     *
     * @param adAccountId
     * @return
     */
    List<AccountDiscount> getByAdAccountId(Integer adAccountId);

    /**
     * 获取认证折扣
     *
     * @param
     * @return
     */
    AccountDiscount getDiscount(Integer adAccountId, User user);

    /**
     * 添加特殊认证记录
     *
     * @param userId      用户id
     * @param type        认证类型
     * @param authNo      证件号码
     * @param adAccountId 区域id
     * @param file        证件文件
     * @param accountId   品牌id
     */
    void auth(Integer userId, Integer type, String authNo, Integer adAccountId, MultipartFile file, Integer accountId, String phone, String name);

    /**
     * 获取用户指定类型折扣
     *
     * @param userId 用户id
     * @param type   认证类型
     * @return
     */
    UserDiscount getUserDiscount(Integer userId, Integer type);

    /**
     * 查询用户是否享受折扣
     *
     * @param userId    用户id
     * @param accountId 品牌id
     * @return
     */
    UserDiscount getByType(Integer userId);

    /**
     * 查询用户认证记录
     *
     * @param userId 用户id
     * @param state  审核状态
     * @return
     */
    UserAuthLog getUserLog(Integer userId, Integer state);

    /**
     * @param userId
     * @return
     */
    UserAuthLog getAllUserLog(Integer userId);

    /**
     * 新增
     *
     * @param userDiscount
     */
    void insert(UserDiscount userDiscount);

    /**
     * 通过身份证号码查询
     *
     * @param accountId
     * @return
     */
    UserDiscount getByIdNo(Integer accountId, String idNO);
}
